//
//  XXBaseTableViewCell.swift
//  APP
//
//  Created by Rdxer on 2017/12/11.
//  Copyright © 2017年 Rdxer. All rights reserved.
//

import UIKit

/// TableViewCell 基类
public class XXBaseTableViewCell<TModel>: UITableViewCell {
    
    var model:TModel?{
        didSet{
            modelDidSet(oldValue: oldValue, newValue: model)
        }
    }
    
    /// 模型变更时调用   无需调用 super
    open func modelDidSet(oldValue:TModel?,newValue:TModel?){}
    /// 准备 subview   无需调用 super
    open func prepareSubViews(){}
    
    public override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        prepareSubViews()
    }
    
    required public init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        
        prepareSubViews()
    }
}

/// 卡片式的 TableViewCell 基类
public class XXBaseCardTableViewCell<TModel>: XXBaseTableViewCell<TModel> {
    
    /// 模型变更时调用   无需调用 super
    open override func modelDidSet(oldValue:TModel?,newValue:TModel?){}
    
    /// 准备 subview   !!! 需要调用 super  请使用 prepareCardSubViews
    open override func prepareSubViews(){
        backgroundColor = AC.backgroundColor
        
        contentView.addSubview(backView)
        
        contentView.xx_layoutVerticalSubviews(contentInset: AUIC.cardMarginEdgeInsets, fill: true)
        
        prepareCardSubViews(cardView:backView)
    }
    
    /// 准备 Card SubViews  无需调用 super
    open func prepareCardSubViews(cardView:UIView) {}
    
    let backView = UIView.init().then {
        $0.clipsToBoundsCornerRadius =  AUIC.cardCornerRadius
        $0.backgroundColor = AC.white
    }
}
